/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Data;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;


public class Pesqueiro {
    private static final String pesqTable = "pesqueiros";
    protected HashMap<String,Object> hmPesqueiro = new HashMap<String, Object> ();
    public static SimpleDateFormat dateCreator = new SimpleDateFormat("dd/MM/yyyy");
    public static SimpleDateFormat dateFormatSql = new SimpleDateFormat("yyyy-MM-dd");

    final String nome = "NOME";
    final String rp = "RP";
    final String logradouro = "LOGRADOURO";
    final String numero = "NUMERO";
    final String bairro = "BAIRRO";
    final String cidade = "CIDADE";
    final String estado = "ESTADO";
    final String cep = "CEP";
    final String telefone = "TELEFONE";
    final String email = "EMAIL";
    final String site = "SITE";
    final String nextel = "NEXTEL";
    final String celular = "CELULAR";
    final String id = "ID";
    final String demais_tel = "DEMAIS_TEL";
    final String cnpj = "CNPJ";

    public Pesqueiro(Pesqueiro p){
        this.hmPesqueiro.putAll((Map<? extends String, ? extends Object>) p.hmPesqueiro.clone());
    }

    public Pesqueiro(String nome,String rp, String cnpj, String logradouro, String numero, String bairro, String cidade,
          String estado, String cep, String telefone, String celular, String nextel, String id, String demais_tel, String email, String site) throws ParseException{

      hmPesqueiro.put(this.nome, nome);
      hmPesqueiro.put(this.rp , rp);
      hmPesqueiro.put(this.cnpj , cnpj);
      hmPesqueiro.put(this.logradouro , logradouro);
      hmPesqueiro.put(this.numero , numero);
      hmPesqueiro.put(this.bairro , bairro);
      hmPesqueiro.put(this.cidade , cidade);
      hmPesqueiro.put(this.estado , estado);
      hmPesqueiro.put(this.cep , cep);
      hmPesqueiro.put(this.telefone, telefone);
      hmPesqueiro.put(this.celular, celular);
      hmPesqueiro.put(this.nextel, nextel);
      hmPesqueiro.put(this.id, id);
      hmPesqueiro.put(this.demais_tel, demais_tel);
      hmPesqueiro.put(this.email, email);
      hmPesqueiro.put(this.site, site);
    }

   public Pesqueiro(){

    }

     public void setData(String key, Object value){

        if(key.toUpperCase().equals(this.nome)){
            this.setNome((String) value);
        } else if(key.toUpperCase().equals(this.logradouro)){
            this.setLogradouro((String) value);
        }
         else if(key.toUpperCase().equals(this.numero)){
            this.setNumero((String) value);
        }
         else if(key.toUpperCase().equals(this.bairro)){
            this.setBairro((String) value);
        }
         else if(key.toUpperCase().equals(this.cidade)){
            this.setCidade((String) value);
        }
         else if(key.toUpperCase().equals(this.estado)){
            this.setEstado((String) value);
        }
         else if(key.toUpperCase().equals(this.cep)){
            this.setCep((String) value);
        }
        else if(key.toUpperCase().equals(this.cnpj)){
            this.setCnpj((String) value);
        }
         else if(key.toUpperCase().equals(this.telefone)){
            this.setTelefone((String) value);
        }
        else if(key.toUpperCase().equals(this.celular)){
            this.setCelular((String) value);
        }
        else if(key.toUpperCase().equals(this.nextel)){
            this.setNextel((String) value);
        }
        else if(key.toUpperCase().equals(this.id)){
            this.setId((String) value);
        }
        else if(key.toUpperCase().equals(this.telefone)){
            this.setTelefone((String) value);
        }
        else if(key.toUpperCase().equals(this.site)){
            this.setSite((String) value);
        }
         else if (key.toUpperCase().equals(this.email))
            this.setEmail((String) value);
    }

   public String getBairro() {
        return (String)hmPesqueiro.get(bairro);
    }

    public void setBairro(String bairro) {
        //this.bairro = bairro;
        this.hmPesqueiro.put(this.bairro, bairro);
    }

    public void setEstado(String estado) {
        //this.estado = estado;
        this.hmPesqueiro.put(this.estado, estado);
    }

    public String getNome() {
        //return nome;
        return (String) this.hmPesqueiro.get(this.nome);
    }

    public String getCep() {
        return (String)hmPesqueiro.get(cep);
    }

    public void setCep(String CEP){
        //this.cep = cep;
        this.hmPesqueiro.put(this.cep, CEP);
    }

    public String getCnpj() {
        return (String)hmPesqueiro.get(cnpj);
    }

    public void setCnpj(String cnpj){
        //this.cep = cep;
        this.hmPesqueiro.put(this.cnpj, cnpj);
    }

    public String getCidade() {
        return (String)hmPesqueiro.get(cidade);
    }

    public void setCidade(String cidade) {
        //this.cidade = cidade;
        this.hmPesqueiro.put(this.cidade, cidade);
    }

    public String getEstado() {
        return (String)hmPesqueiro.get(estado);
    }
    
    public String getLogradouro() {
        return (String)hmPesqueiro.get(logradouro);
    }

     public void setLogradouro(String logradouro) {
        //this.logradouro = logradouro;
        this.hmPesqueiro.put(this.logradouro,logradouro);
    }

    public void setNome(String nome) {
        //this.logradouro = logradouro;
        this.hmPesqueiro.put(this.nome,nome);
    }

    public String getNumero() {
        return (String)hmPesqueiro.get(numero);
    }

    public void setNumero(String numero) {
        this.hmPesqueiro.put(this.numero, numero);
        //this.numero = numero;
    }

    public String getTelefone() {
        return (String)hmPesqueiro.get(telefone);
    }

    public void setTelefone(String telefone) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.telefone, telefone);
    }

    public String getCelular() {
        return (String)hmPesqueiro.get(celular);
    }

    public void setCelular(String celular) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.celular, celular);
    }

    public String getNextel() {
        return (String)hmPesqueiro.get(nextel);
    }

    public void setNextel(String nextel) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.nextel, nextel);
    }

    public String getId() {
        return (String)hmPesqueiro.get(id);
    }

    public void setId(String id) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.id, id);
    }
    public String getEmail() {
        return (String)hmPesqueiro.get(email);
    }

    public void setEmail(String email) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.email, email);
    }

    public String getSite() {
        return (String)hmPesqueiro.get(site);
    }

    public void setSite(String site) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.site, site);
    }

    public String getDemais_tel() {
        return (String)hmPesqueiro.get(demais_tel);
    }

    public void setDemais_tel(String demais_tel) {
        //this.telefone = telefone;
        this.hmPesqueiro.put(this.demais_tel, demais_tel);
    }

    public String getInsertSql(){
        if (hmPesqueiro.size() > 0){
        final String separator = ", ";
        StringBuilder campos = new StringBuilder("INSERT into "+ pesqTable + " (");
        StringBuilder valores = new StringBuilder(") values (");
        for (String campo : hmPesqueiro.keySet()) {
            campos.append(campo + separator);

            if (hmPesqueiro.get(campo) instanceof java.lang.String){
                valores.append("'" + hmPesqueiro.get(campo) + "'");
            }
            else valores.append(hmPesqueiro.get(campo));

            valores.append(separator);
        }
        valores.delete(valores.lastIndexOf(separator), valores.length()); //apaga a ultima ", "
        campos.delete(campos.lastIndexOf(separator), campos.length());
        System.out.println("String Insert Sql: " + campos.toString() + valores.toString());

        return campos.toString() + valores.toString() + ")";
        } else {
            return null;
        }
    }
}
